This invention generally relates to software, and more specifically, to detecting invalid memory references as they occur, during the software development process.
During software development, an application is tested under a variety of conditions to discover latent errors, sometimes referred to as bugs. Current debugging techniques involve logging errors that occur during execution, such as invalid memory references. Consequentially, the application is modified to remove the bugs and provide a more stable product for release.
One problem with current debugging techniques is that diagnosing the errors can take a lot of time and effort due to lack of information. For example, an invalid memory reference needs to be consistently reproduced in order to make the appropriate modifications. However, when the application continues processing, the error can be overwritten or otherwise lost. As a result, the software development time is increased and/or the stability of the application is decreased.
Furthermore, some traditional debugging techniques that determine errors from the perspective of an application running over an operating system fail to provide sufficient granularity for more complex environments. In particular, integrated database applications include an customized operating system environment that runs within the software. By viewing errors from the perspective of a general operating system, traditional debugging techniques may not provide enough detail about the error for modification.
As can be appreciated, it is desirable for a software developer to be able to effectively and efficiently debug software for invalid memory references in a proactive manner. Therefore, there is a need to debug invalid memory references as they occur, and with sufficient granularity.